/**
 * 大文件上传：比如说有一个56M的文件，需要上传到服务器, 你需要将文件切片，
 * 然后上传；每一个块最大限制是5MB，你需要分成12块上传。
 * 
 * 要点：每一个块都要有唯一的标识: 这个标识可以跟后端约定
 * 较强的加密手段：spark-md5 这个插件是根据文件内容生成md5值，
 * 是cpu密集型的一个任务，非常耗时，但是我用六十多兆的文件上传也才0.6s.
 * CPU密集型的问题可以用worker去解决
 */

import cutFile from "./cutFile";
const input = document.createElement("input");
input.type = "file";
document.body.appendChild(input);

input.addEventListener("change", async (event: Event) => {
  const files = (event.target as HTMLInputElement).files;

  if (!files?.length) return;
  const file = files[0];

  // 前端获取到文件，对文件进行切片
  console.time("cutFile");
  const chunks = await cutFile(file);
  console.timeEnd("cutFile");
  console.log('分片结果', chunks  );
  
  // 上传
});


// 为什么分片上传需要唯一标识？
// 1. 多用户同时上传文件，或者同一用户连续上传多个文件，服务器需要明确分片属于哪个文件
// 2. 断点续传，网络中断之后，可以知道哪些分片已经上传过了，哪些需要补传
// 3. 